A virtual machine is software that is executed on hardware to create a virtualization of a physical computer system. Virtual machines may function as self-contained platforms that run their own operating systems and software applications.
A host machine, such as a server computer, may concurrently run one or more virtual machines using software that is referred to as a hypervisor. The hypervisor allocates a certain amount of the host machine's resources, such as the host machine's underlying physical processors and memory devices, to each of the virtual machines. This allocating by the hypervisor allows the virtual machines to transparently access the host machine's resources. Each virtual machine may use the allocated resources to execute applications, including operating systems referred to as guest operating systems. These guest operating systems may be accessed by one or more local or remote clients to perform computing tasks. In some instances, virtual machines and guest operating systems may be implemented to provide cloud computing environments.
Turning now to the conventional host machines that run the virtual machines, the host machines often include a local Peripheral Component Interconnect (PCI) bus for attaching peripheral hardware devices. For compatibility purposes, these peripheral hardware devices that are attached via the PCI bus may implement PCI-related standards such as conventional PCI, PCI-X (PCI EXTENDED), PCI EXPRESS, and so forth.
Embodiments of the present disclosure and their advantages are best understood by referring to the detailed description that follows.